import { fileURLToPath, URL } from 'node:url'
import fileName from './package.json'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import qiankun from 'vite-plugin-qiankun' // qiankun插件
import prefixWrap from 'postcss-prefixwrap'
const useDevMode = true // 本地开发模式
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    qiankun('vue3-subapp', { useDevMode }) // 名称需与主应用注册子应用一致
  ],
  base: 'http://common.xiaoruan.xyz:8081/', // 子应用的实际部署地址
  server: {
    port: 8080, // 确保端口与主应用中的 entry 对应
    cors: true,
    headers: {
      'Access-Control-Allow-Origin': '*'
    },
    origin: 'http://localhost:8080' // 用于跨域处理
  },
  css: {
    postcss: {
      plugins: [
        prefixWrap('.' + fileName.name, {
          blacklist: ['reset.css']
        }) // 将 prefixWrap 传递给 PostCSS 插件配置
      ]
    }
  },
  build: {
    target: 'es2015',
    cssCodeSplit: false,
    rollupOptions: {
      output: {
        format: 'umd',
        name: 'vue3-subapp', // 必须与主应用中注册的子应用名称匹配
        entryFileNames: 'index.js',
        chunkFileNames: '[name].js',
        assetFileNames: '[name].[ext]'
      }
    }
  },
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
  // 生产环境移除console
})
